package com.skydonkey.pojo.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.skydonkey.pojo.po.AccountInfo;
import com.skydonkey.pojo.po.VideoInfo;

import java.sql.Timestamp;
import java.util.List;

public class VideoDetailsResp {
    private VideoInfo videoInfo;    //视频详细信息
    private Long likedCount;    // 点赞/我喜欢次数
    private Long favoritedCount;    //收藏次数
    private Long commentCount;  //评论次数
    private Long watchTimes;    //观看次数
    private List<String> categoryNames; //视频所属标签
    private AccountInfo accountInfo;    //用户信息
    private String nickname;    //用户昵称

    private Boolean isMyLiked;  //是否是我喜欢的
    private Boolean isMyFav;       //是否是我收藏的
    private Boolean followed; //是否已关注该用户


    @JsonFormat(
            shape=JsonFormat.Shape.STRING,
            pattern = "yyyy-MM-dd HH:mm:ss",
            timezone = "GMT+8")
    private Timestamp createTime;    //当前所查视频的类型时间

    public String getNickname() {
        return nickname;
    }

    public VideoDetailsResp setNickname(String nickname) {
        this.nickname = nickname;
        return this;
    }

    public VideoInfo getVideoInfo() {
        return videoInfo;
    }

    public VideoDetailsResp setVideoInfo(VideoInfo videoInfo) {
        this.videoInfo = videoInfo;
        return this;
    }

    public Long getLikedCount() {
        return likedCount;
    }

    public VideoDetailsResp setLikedCount(Long likedCount) {
        this.likedCount = likedCount;
        return this;
    }

    public Long getFavoritedCount() {
        return favoritedCount;
    }

    public VideoDetailsResp setFavoritedCount(Long favoritedCount) {
        this.favoritedCount = favoritedCount;
        return this;
    }

    public Long getCommentCount() {
        return commentCount;
    }

    public VideoDetailsResp setCommentCount(Long commentCount) {
        this.commentCount = commentCount;
        return this;
    }

    public Long getWatchTimes() {
        return watchTimes;
    }

    public VideoDetailsResp setWatchTimes(Long watchTimes) {
        this.watchTimes = watchTimes;
        return this;
    }

    public List<String> getCategoryNames() {
        return categoryNames;
    }

    public VideoDetailsResp setCategoryNames(List<String> categoryNames) {
        this.categoryNames = categoryNames;
        return this;
    }

    public AccountInfo getAccountInfo() {
        return accountInfo;
    }

    public VideoDetailsResp setAccountInfo(AccountInfo accountInfo) {
        this.accountInfo = accountInfo;
        return this;
    }

    public Timestamp getCreateTime() {
        return createTime;
    }

    public VideoDetailsResp setCreateTime(Timestamp createTime) {
        this.createTime = createTime;
        return this;
    }

    public Boolean getMyLiked() {
        return isMyLiked;
    }

    public VideoDetailsResp setMyLiked(Boolean myLiked) {
        isMyLiked = myLiked;
        return this;
    }

    public Boolean getMyFav() {
        return isMyFav;
    }

    public VideoDetailsResp setMyFav(Boolean myFav) {
        isMyFav = myFav;
        return this;
    }

    public Boolean getFollowed() {
        return followed;
    }

    public VideoDetailsResp setFollowed(Boolean followed) {
        this.followed = followed;
        return this;
    }

    @Override
    public String toString() {
        return "VideoDetailsResp{" +
                "videoInfo=" + videoInfo +
                ", likedCount=" + likedCount +
                ", favoritedCount=" + favoritedCount +
                ", commentCount=" + commentCount +
                ", watchTimes=" + watchTimes +
                ", categoryNames=" + categoryNames +
                ", accountInfo=" + accountInfo +
                ", nickname='" + nickname + '\'' +
                ", isMyLiked=" + isMyLiked +
                ", isMyFav=" + isMyFav +
                ", followed=" + followed +
                ", createTime=" + createTime +
                '}';
    }
}
